API GatewayをカスタムドメインでHTTPS化する
こんにちは、中村です。
GW前半は、みっちり運動しました。後半もその予定です。(笑)
皆さんは、GWいかがお過ごしでしょうか。
さて今回は、API Gatewayの話です。
2018/05/02訂正: 使用できるACM証明書について誤りがあったため訂正しました。
はじめに
API GatewayにてAPIをデプロイするとデフォルトはこのような形になります。
https://*******.execute-api.ap-northeast-1.amazonaws.com/***/
これをカスタムドメイン・HTTPSにする場合は、API Gateway・Route53・Certificate Managerでの設定が必要になります。
API Gatewayの作成とLambdaについては触れません。
あくまで、カスタムドメインとHTTPS化のみになります。
Certficate ManagerでSSLを取得する
ドメインはRoute53に設定してある状態としてください
Certificate Managerを開き、"証明書のリクエスト"をクリックします。
証明書のタイプを選択します。今回は、"パブリック証明書のリクエスト"を選択します。
次に今回使用するドメインを追加します。
ドメイン名を入力後、"次へ"をクリックします。
最後に検証方法を指定します。今回はDNS検証を試します。
確認が表示され、問題なければ"確定とリクエスト"をクリックします。
検証について表示されます。Route53に移動してDNSを設定するか、"Route53でのレコードの作成"をクリックします。
"Route53でのレコードの作成"をクリックした場合、作成されるレコードが表示され"作成"をクリックするとDNSが作成されます。
更新した後、検証が完了になれば証明書が発行されます。
今回は、数分で発行されました。
訂正:エンドポイントタイプが、Edge Optimizedの時に限りバージニア北部の証明書のみ対応しており、Regionalの場合は各リージョンの証明書が使用できます。
API Gatewayでカスタムドメインを設定する
API Gatewayを開き、サイドメニューから"カスタムドメイン名"をクリックします。
"カスタムドメイン名の作成"をクリックし、取得した証明書のドメイン名の入力・証明書の選択・ベースパスマッピングの選択をします。
ベースパスマッピングでは、アクセスするためのパス・送信先API・ステージの選択を行います。
例えば、www.example.com/devでAPIにアクセスさせたい場合、パスを/devに設定します。
入力が完了し保存すると、ACM証明書の初期化が始まります。
初期化には最大40分かかるとされています。
Route53でDNSの設定
最後に、Route53にてDNSの設定をします。
ターゲットドメイン名をALIASレコードで登録します。
API Gatewayで設定した方法でドメインにアクセスしてみると、確認できると思います。
まとめ
いかがでしたでしょう。
わかってしまえば簡単なのですが、はじめてでしたのでまとめてみました。